// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.google.zxing.maxicode;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.DecodeHintType;
import com.google.zxing.NotFoundException;
import com.google.zxing.Reader;
import com.google.zxing.Result;
import com.google.zxing.ResultMetadataType;
import com.google.zxing.ResultPoint;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.common.DecoderResult;
import com.google.zxing.maxicode.decoder.Decoder;
import java.util.Map;
public final class MaxiCodeReader
implements Reader
{
private static final ResultPoint a[] = new ResultPoint[0];
private static final int b = 30;
private static final int c = 33;
private final Decoder d = new Decoder();
public MaxiCodeReader()
{
}
private static BitMatrix a(BitMatrix bitmatrix)
{
int ai[] = bitmatrix.getEnclosingRectangle();
if (ai == null)
{
throw NotFoundException.getNotFoundInstance();
}
int i = ai[0];
int j = ai[1];
int k = ai[2];
int l = ai[3];
BitMatrix bitmatrix1 = new BitMatrix(30, 33);
for (int i1 = 0; i1 < 33; i1++)
{
int j1 = j + (i1 * l + l / 2) / 33;
for (int k1 = 0; k1 < 30; k1++)
{
if (bitmatrix.get(i + (k1 * k + k / 2 + (k * (i1 & 1)) / 2) / 30, j1))
{
bitmatrix1.set(k1, i1);
}
}
}
return bitmatrix1;
}
Decoder a()
{
return d;
}
public Result decode(BinaryBitmap binarybitmap)
{
return decode(binarybitmap, null);
}
public Result decode(BinaryBitmap binarybitmap, Map map)
{
if (map != null && map.containsKey(DecodeHintType.PURE_BARCODE))
{
BitMatrix bitmatrix = a(binarybitmap.getBlackMatrix());
DecoderResult decoderresult = d.decode(bitmatrix, map);
ResultPoint aresultpoint[] = a;
Result result = new Result(decoderresult.getText(), decoderresult.getRawBytes(), aresultpoint, BarcodeFormat.MAXICODE);
String s = decoderresult.getECLevel();
if (s != null)
{
result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, s);
}
return result;
} else
{
throw NotFoundException.getNotFoundInstance();
}
}
public void reset()
{
}
}